home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu453.dms / pu453.adf / extras / basic_sources / qcd_conflicts.bas < prev    next >
BASIC Source File  |  1992-11-08  |  2KB  |  112 lines

  1. REM $option Y+,K150,Fc:qcconflict
  2. WINDOW 1,"QCD Duplicate-Dir Finder v1.0",(100,0)-(500,240),15,
  3. PRINT
  4. PRINT "(c) 26-10-1992 David Alan Caruana"
  5. PRINT
  6. PRINT
  7. PRINT "Please Wait .. Loading QCDirList"
  8.  
  9. DIM s$(5000)
  10. DIM s(5000)
  11.  
  12. OPEN "I",#1,"s:qcdirlist"
  13. WHILE NOT(EOF(1))
  14.     INCR n
  15.     LOCATE 7,5 : PRINT "Record ";n
  16.     INPUT #1,s$(n)
  17.     INPUT #1,s(n)
  18. WEND
  19. CLOSE #1
  20.  
  21. CLS : PRINT "Please Wait .. Searching"
  22.  
  23. FOR x = 1 TO (n-1)
  24.     LOCATE 3,1 : PRINT "Searched ";INT(x/n*100);" %"
  25.     FOR y = (x+1) TO n
  26.         IF s$(y)=s$(x) THEN 
  27.             conflict x,y
  28.             CLS : PRINT "Please Wait .. Searching"
  29.             LOCATE 3,1 : PRINT "Searched ";INT(x/n*100);" %"
  30.         END IF
  31.     NEXT y
  32. NEXT x
  33.  
  34. CLS 
  35. PRINT "All Ready .."    
  36. PRINT "OK to save ? [y]es or [n]o"
  37. x$ = ""
  38. WHILE x$ = "" : x$ = INKEY$ : WEND
  39.  
  40. IF UCASE$(x$) = "Y" THEN
  41.     OPEN "O",#1,"s:qcdirlist"    
  42.     FOR x = 1 TO n
  43.         PRINT #1,s$(x)
  44.         PRINT #1,s(x)
  45.     NEXT x
  46.     CLOSE #1
  47. END IF
  48.  
  49. SYSTEM
  50.  
  51. SUB conflict(x,y) STATIC
  52.     SHARED s$(),s(),n
  53.     
  54.     sd = s(x)
  55.     p=x
  56.     fs$ = s$(x)
  57.     nxtsd:
  58.         DECR sd
  59.         IF sd = -1 THEN GOTO extsd
  60.         WHILE s(p)<>sd
  61.             DECR p
  62.         WEND
  63.         IF sd>0 THEN
  64.             fs$ = s$(p)+"/"+fs$
  65.         ELSE
  66.             fs$ = s$(p)+fs$
  67.         END IF
  68.     GOTO nxtsd
  69.     extsd:
  70.  
  71.     dd = s(y)
  72.     p=y
  73.     fd$ = s$(y)
  74.     nxtdd:
  75.         DECR dd
  76.         IF dd = -1 THEN GOTO extdd
  77.         WHILE s(p)<>dd
  78.             DECR p
  79.         WEND
  80.         IF dd>0 THEN
  81.             fd$ = s$(p)+"/"+fd$
  82.         ELSE
  83.             fd$ = s$(p)+fd$
  84.         END IF
  85.     GOTO nxtdd
  86.     extdd:
  87.     
  88.     retry:
  89.     CLS    
  90.     LOCATE 1,1:PRINT "Name Conflict Detected ..."
  91.     LOCATE 3,1:PRINT "Which is most important ?"
  92.     LOCATE 6,1:PRINT "[1] : ";fs$;"                       "
  93.     LOCATE 7,1:PRINT " .. or .."
  94.     LOCATE 8,1:PRINT "[2] : ";fd$;"                       "
  95.     LOCATE 10,1:PRINT "Press [1] or [2]"
  96.     
  97.     x$ = ""
  98.     WHILE x$ = "":x$ = INKEY$:WEND
  99.     okf = 0
  100.     IF x$ = "1" THEN
  101.         s$(y) = "_"+s$(y)
  102.         okf=-1
  103.     END IF
  104.     IF x$ = "2" THEN
  105.         s$(x) = "_"+s$(x)
  106.         okf=-1
  107.     END IF
  108.     IF NOT(okf) THEN GOTO retry
  109.     
  110. END SUB    
  111.         
  112.